﻿using System;
using DevExpress.XtraEditors;
using System.Linq;

namespace Management
{
    public partial class frmKullaniciTanitim : XtraForm
    {
        public frmKullaniciTanitim()
        {
            InitializeComponent();
        }

        private void frmKullaniciTanitim_Load(object sender, EventArgs e)
        {
            yeni();
        }

        private void txtKod_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            ShowListe(txtKod.Text);
        }

        private void ShowListe(string filtre)
        {
            frmListe liste = new frmListe();
            liste.ListeTipi = frmListe.ListeTipleri.KullaniciListesi;
            liste.SetValueControl = txtKod;
            if (liste.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                string kod = txtKod.Tag.ToString();
                Kullanici kul = new MikroEntities().Kullanicilar.Where(x => x.Kodu == kod).FirstOrDefault();
                if (kul != null)
                {
                    txtKod.Text = kul.Kodu;
                    txtAdi.Text = kul.Adi;
                    txtSifre.Text = kul.Sifre;
                }
            }
        }

        private void txtKod_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == System.Windows.Forms.Keys.F10)
                ShowListe(txtKod.Text);
        }

        private void txtAdi_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == System.Windows.Forms.Keys.F10)
                ShowListe(txtAdi.Text);
        }

        private void txtAdi_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            ShowListe(txtAdi.Text);
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            using (MikroEntities ent = new MikroEntities())
            {
                Kullanici kul = ent.Kullanicilar.Where(x => x.Kodu == txtKod.Text).FirstOrDefault();
                if (kul == null)
                {
                    kul = new Kullanici() { Adi = txtAdi.Text, Kodu = txtKod.Text, Sifre = txtSifre.Text };
                    ent.AddToKullanicilar(kul);
                }
                else
                {
                    kul.Kodu = txtKod.Text;
                    kul.Adi = txtAdi.Text;
                    kul.Sifre = txtSifre.Text;
                }
                ent.SaveChanges();
            }
            yeni();
        }

        private void yeni()
        {
            txtSifre.Text = "";
            txtKod.Text = "";
            txtKod.Tag = "";
            txtAdi.Text = "";
            txtKod.Focus();
        }

        private void btnRemove_Click(object sender, EventArgs e)
        {
            using (MikroEntities ent = new MikroEntities())
            {
                Kullanici kul = ent.Kullanicilar.Where(x => x.Kodu == txtKod.Text).FirstOrDefault();
                if (kul != null)
                {
                    ent.DeleteObject(kul);
                    ent.SaveChanges();
                }
            }
            yeni();
        }

    }
}
